//package com.zbkj.front.netty.server;
//
//import cn.hutool.core.util.StrUtil;
//import io.netty.channel.Channel;
//
//import java.util.HashSet;
//import java.util.Set;
//import java.util.concurrent.ConcurrentHashMap;
//
///**
// * 存放用户id与管道Channel关系
// *
// * @author ywy
// */
//public class UserIdChannelMap {
//
//    public static ConcurrentHashMap<String, Channel> userIdChannelMap;
//
//    static {
//        if (userIdChannelMap == null) {
//            userIdChannelMap = new ConcurrentHashMap(40);
//            //userIdChannelMap.put("285d6c84691e4096b7676d2795c34ddd",);
//            //userIdChannelMap.put("285d6c84691e4096b7676d2795c34dd1",);
//        }
//    }
//
//    /**
//     * 绑定关系
//     *
//     * @param userId
//     * @param channel
//     */
//    public static void put(String userId, Channel channel) {
//        userIdChannelMap.put(userId, channel);
//    }
//
//    /**
//     * 根据用户id获取通道
//     *
//     * @param userId
//     */
//    public static Channel get(String userId) {
//        return userIdChannelMap.get(userId);
//    }
//
//    /**
//     * 移除
//     *
//     * @param userId
//     */
//    public static void remove(String userId) {
//        userIdChannelMap.remove(userId);
//    }
//
//    /**
//     * 根据通道id移除用户id与通道id的关联
//     *
//     * @param channelId
//     */
//    public static void removeByChannelId(String channelId) {
//        if (StrUtil.isBlank(channelId)) {
//            return;
//        }
//        for (String userId : userIdChannelMap.keySet()) {
//            Channel channel = userIdChannelMap.get(userId);
//            if (channelId.equals(channel.id().asLongText())) {
//                userIdChannelMap.remove(userId);
//                break;
//            }
//        }
//    }
//
//
//    /**
//     * 获取所有userId
//     */
//    public static Set<String> getAllUserId() {
//        Set<String> set = new HashSet<>();
//        for (String userId : userIdChannelMap.keySet()) {
//            set.add(userId);
//        }
//        return set;
//    }
//
//
//    /**
//     * 根据通道id获取用户id
//     *
//     * @param channelId
//     */
//    public static String findUserIdByChannelId(String channelId) {
//        if (StrUtil.isBlank(channelId)) {
//            return "";
//        }
//        for (String userId : userIdChannelMap.keySet()) {
//            Channel channel = userIdChannelMap.get(userId);
//            if (channelId.equals(channel.id().asLongText())) {
//                return userId;
//            }
//        }
//        return "";
//    }
//
//}
